	
// StuderendeFag.h : Declaration of the CStuderendeFag

#ifndef __STUDERENDEFAG_H_
#define __STUDERENDEFAG_H_

#include "resource.h"       // main symbols

/////////////////////////////////////////////////////////////////////////////
// CStuderendeFag
class ATL_NO_VTABLE CStuderendeFag : 
	public CComObjectRootEx<CComMultiThreadModel>,
	public CComCoClass<CStuderendeFag, &CLSID_StuderendeFag>,
	public ISupportErrorInfo,
	public IDispatchImpl<IStuderendeFag, &IID_IStuderendeFag, &LIBID_EBASDLLLib>
{
public:
	CStuderendeFag()
	{
		m_pUnkMarshaler = NULL;
	}

DECLARE_REGISTRY_RESOURCEID(IDR_STUDERENDEFAG)
DECLARE_NOT_AGGREGATABLE(CStuderendeFag)
DECLARE_GET_CONTROLLING_UNKNOWN()

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CStuderendeFag)
	COM_INTERFACE_ENTRY(IStuderendeFag)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(ISupportErrorInfo)
	COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pUnkMarshaler.p)
END_COM_MAP()

	HRESULT FinalConstruct()
	{
		return CoCreateFreeThreadedMarshaler(
			GetControllingUnknown(), &m_pUnkMarshaler.p);
	}

	void FinalRelease()
	{
		m_pUnkMarshaler.Release();
	}

	CComPtr<IUnknown> m_pUnkMarshaler;

// ISupportsErrorInfo
	STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);

// IStuderendeFag
public:
	STDMETHOD(FjernKarakter)(/*[in]*/ IFag * pKarakter);
	STDMETHOD(TildelKarakter)(/*[in]*/ IFag * pFag, /*[in]*/ IKarakter * pKarakter);
	STDMETHOD(get_pStuderende)(/*[out, retval]*/ IStuderende * *pVal);
	STDMETHOD(put_pStuderende)(/*[in]*/ IStuderende * newVal);
	STDMETHOD(get_Bemaerkning)(/*[out, retval]*/ BSTR *pVal);
	STDMETHOD(put_Bemaerkning)(/*[in]*/ BSTR newVal);
	STDMETHOD(get_Rykker)(/*[out, retval]*/ BSTR *pVal);
	STDMETHOD(put_Rykker)(/*[in]*/ BSTR newVal);
	STDMETHOD(get_Afsendt)(/*[out, retval]*/ BSTR *pVal);
	STDMETHOD(put_Afsendt)(/*[in]*/ BSTR newVal);
	STDMETHOD(get_Omskriv)(/*[out, retval]*/ BSTR *pVal);
	STDMETHOD(put_Omskriv)(/*[in]*/ BSTR newVal);
	STDMETHOD(get_Tid)(/*[out, retval]*/ BSTR *pVal);
	STDMETHOD(put_Tid)(/*[in]*/ BSTR newVal);
	STDMETHOD(get_GUID)(/*[out, retval]*/ BSTR *pVal);
	STDMETHOD(put_GUID)(/*[in]*/ BSTR pVal)
	{
		
		return S_OK;
	}
};

#endif //__STUDERENDEFAG_H_
